#ifndef ADJUSTFROM_H
#define ADJUSTFROM_H

#include <QWidget>
#include <QButtonGroup>
#include "src/base/Logic.h"
#include "src/device/Motor/motor.h"
#include "src/define/func_define.h"


struct ChatPlotDatas{
    int swingCount = 1; //摆动次数
    int swingInterval = 10; //摆动间隔--ms
    int swingLenth = 30; //摆动幅度---r
    int swingFreq = 30; //摆动频率
    int swingWait = 30; //摆动滞留--ms

};

/**
 * @brief The InputPara struct
 * @details 因为输入产生的相关参数
 */
struct InputPara{
    int arrPuls;              // 到达的脉冲量
    int backPuls;              // 返回的脉冲量
    uint sleepTime;           // 休眠的时间

    bool arr_isAverage;       // 到达是否匀速？
    bool back_isAverage;      // 到达是否匀速？

    uint arrivePosition[5];   // 到达位置
    uint backPosition[5];     // 到达位置

    double swingFreq = 0;       // 摆动频率

    uint nextWait;              // 下次摆动的等待时间
};

/**
 * @brief The UpLoadPara struct
 * @details 准备上载的参数
 */
struct UpLoadPara{

    uint arrivePercent[5];   // 到达比例
    uint arriveTick;         // 每个节拍休眠的时间

    uint sleepPercent[5];
    uint sleepTick;          // 每个节拍休眠的时间

    uint backPercent[5];     // 返程比例
    uint backTick;           // 每个节拍休眠的时间
};


namespace Ui {
class AdjustFrom;
}

class AdjustFrom : public QWidget
{
    Q_OBJECT

public:
    explicit AdjustFrom(QWidget *parent = nullptr);
    ~AdjustFrom();

    int getRadioGroupIndex();
private slots:


    void on_pb_CreatChart_clicked();
    void on_pb_EE_clicked();

    void on_pb_Gau_clicked();

    void on_sp_len_editingFinished();

    void on_sp_Angle_editingFinished();

    void on_pb_setLen_clicked();

    void on_pb_freq_clicked();

signals:
    void creatChart(InputPara);
    void freqChanged(double ,double);
    void gauShow();
private:
    Ui::AdjustFrom *ui;
    QButtonGroup *radios;

    InputPara inp; // 输入参数

};

#endif // ADJUSTFROM_H
